package 操作.工具类

import androidx.compose.ui.graphics.Color

object 颜色操作 {

    /**
     * 可与背景色做对比的
     */
    fun 鲜明对比色() : List<String>{
        return  listOf("#886D55","#FF5733", "#33B5FF", "#00FF00", "#FFEB3B",
            "#F44336", "#8E44AD", "#1E88E5", "#FFC107", "#388E3C", "#FF9800",
            "#9C27B0", "#4CAF50", "#00BCD4", "#673AB7", "#F57C00")
    }


}

/**
 * 16进制颜色转Color对象
 */
fun String.hexToColor(): Color {
    // 移除可能的 '#' 符号
    val cleanedHex = this.removePrefix("#")

    // 确保是 6 位数的颜色代码
    val colorInt = if (cleanedHex.length == 6) {
        // 默认为不透明
        0xFF000000.toInt() or cleanedHex.toInt(16)
    } else {
        // 如果是 8 位颜色（包含透明度）
        cleanedHex.toInt(16)
    }

    return Color(colorInt)
}

/**
 * 若转换失败就判空
 */
fun String.hexToColorForNull(): Color? {
    try {
        // 移除可能的 '#' 符号
        val cleanedHex = this.removePrefix("#")

        // 确保是 6 位数的颜色代码
        val colorInt = if (cleanedHex.length == 6) {
            // 默认为不透明
            0xFF000000.toLong() or cleanedHex.toLong(16)
        } else {
            // 如果是 8 位颜色（包含透明度）
            cleanedHex.toLong(16)
        }

        return Color(colorInt)
    }catch (e : Exception){
        return null
    }
}
